package com.spring.springInterface;

import com.spring.DefaultBeanDefinition;

import java.util.HashMap;
import java.util.List;

public interface BeanFactory {
    Object getBean(String name) throws Exception;
    <T> T getBean(Class<T> requiredType) throws Exception;
    boolean containsBean(String name);
    boolean isSingleton(String name);
    void addBeanPostProcessor(BeanPostProcessor processor);
    Object createBean(String beanName, DefaultBeanDefinition beanDefinition) throws Exception;
    void initializeSingletonBean();

    HashMap<Class<?>, List<String>> getTypeMap();
}
